#ifndef __QUEUE_H__
#define __QUEUE_H__

#include <stdio.h>
#include <stdlib.h>

typedef struct node {
    struct node *next;
    int data;
} queue_node;

typedef struct {
    queue_node *node;
    int num;
} queue;

typedef struct node1 {
    struct node1 *next;
    int data;
} queue_node1;

typedef struct {
    queue_node1 *node;
    queue_node1 *newest;
    int num;
}queue1;

queue *queue_create(void);
void queue_push(queue *S, int data);
int queue_pop(queue *S);

queue1 *queue_create1(void);
void queue_push1(queue1 *S, int data);
int queue_pop1(queue1 *S);

#endif

